package ar.com.uade.administradorsiembra.modelo;

import java.util.Date;
import java.util.List;

import ar.com.uade.administradorsiembra.modelo.exceptions.CantidadSembradaInsuficienteParaCosechaException;

public class Cosecha extends Entidad{
	private Cereal cereal;
	private Date fechaDesde;
	private Date fechaHasta;
	private List<ItemCosecha> distribucionCosecha;
	private Float cantidadCosecha;

	public Cosecha(Date fechaDesde, Date fechaHasta, Cereal cereal){
		
		this.cereal = cereal;
		this.fechaDesde = fechaDesde;
		this.fechaHasta = fechaHasta;
		
	}
	
	public Cosecha(Integer id, Cereal cereal, Date fechaDesde, Date fechaHasta, Float cantidadCosecha){
		
		this.id = id;
		this.cereal = cereal;
		this.fechaDesde = fechaDesde;
		this.fechaHasta = fechaHasta;
		this.cantidadCosecha = cantidadCosecha;
		
	}
	

	public Date getFechaDesde() {
		return fechaDesde;
	}

	public void setFechaDesde(Date fechaDesde) {
		this.fechaDesde = fechaDesde;
	}

	public Date getFechaHasta() {
		return fechaHasta;
	}

	public void setFechaHasta(Date fechaHasta) {
		this.fechaHasta = fechaHasta;
	}

	public Cereal getCereal() {
		return cereal;
	}

	
	public List<ItemCosecha> getDistribucionCosecha() {
		
		return distribucionCosecha;
	}

	public void setDistribucionCosecha(List<ItemCosecha> distribucionCosecha) {
		this.distribucionCosecha = distribucionCosecha;
	}

	public Float getCantidadCosecha() {
		return cantidadCosecha;
	}
	
	public void cosecharLote(Lote lote, Float cantidad) throws CantidadSembradaInsuficienteParaCosechaException{
		this.distribucionCosecha.add(new ItemCosecha(lote, this.cereal, cantidad, this.getId()));
		this.cantidadCosecha =+ cantidad;
	}
}
